package QianFeng04;

/**简单工厂模式:
 * 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
 * 简单工厂模式是工厂模式家族中最简单实用的模式。
 **/
public class Test10 {
    public static void main(String[] args) {
        //使用者和被使用者之间，耦合，产生了依赖，当被使用者改变时，会影响使用者
        //使用工厂模式来降低两者之间的依赖
        //Phone phone = new Phone();
        Product phone = ProductFactory.getProduct("phone");
        if (null != phone) {
            phone.word();
        }
    }
}

//工厂类
class ProductFactory{
    public static Product getProduct(String name) {
        if ("phone".equals(name)) {
            return new Phone();
        } else if ("computer".equals(name)) {
            return new Computer();
        }else return null;
    }
}

interface Product{
    void word();
}

class Phone implements Product{

    @Override
    public void word() {
        System.out.println("手机开始工作...");
    }
}

class Computer implements Product{

    @Override
    public void word() {
        System.out.println("电脑开始工作...");
    }
}